<?php

# -- DÉBUT NOTE DE LICENCE -------------------------------------
#
# Ce fichier fait partie de Clicpage.
#
# Copyright (c) 2010 Francois (www.clicpage.net)
# Distribué selon les termes de la licence GPL version 2.0.
# Consultez le fichier LICENCE ou
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
#
# -- FIN NOTE DE LICENCE ---------------------------------------

class cpServiceCommentaires
{

	public static function getCommentaires()
	{
		
		global $core;
		
		$id = explode('|', $_POST['commentaire_id']);
		for($i=0; $i<count($id); $i++) {
			if(empty($id[$i])) { unset($id[$i]); }
		}
		
		if(empty($id)) {
			throw new cpErreur(__('Aucune sélection'), 'commentaire_id', 101);
		}
		
		$commentaires = $core->site->getCommentaires(array(
			'commentaire_id' => array('=' => $id),
			'avec_page' => true
		), CP_GET_STATIC);
		
		if($commentaires->isEmpty()) {
			throw new cpErreur(__('Aucune sélection'), 'commentaire_id', 101);
		}
		
		return $commentaires;
		
	}
	
	
	public static function getCommentairesParID()
	{
		
		$commentaires = self::getCommentaires();
		
		$data = array();
		
		while($commentaires->fetch())
		{
			$data[] = array(
				'commentaire_id' => (integer) $commentaires->commentaire_id,
				'commentaire_statut' => (integer) $commentaires->commentaire_statut,
				'commentaire_auteur' => $commentaires->commentaire_auteur,
				'commentaire_email' => $commentaires->commentaire_email,
				'commentaire_titre' => $commentaires->commentaire_titre,
				'commentaire_contenu' => $commentaires->commentaire_contenu,
				'commentaire_ip' => $commentaires->commentaire_ip,
				'commentaire_date' => dt::dt2str('%Y-%m-%d %H:%M', $commentaires->commentaire_date)
			);
		}
		
		return array('erreur' => 0, 'commentaires' => $data);
		
	}
	
	
	public static function modifierStatut()
	{
		
		global $core;
		
		# Permission nécessaire: commentaires
		$core->auth->verifierPermission('commentaires', true);
		
		if(!isset($_POST['commentaire_statut']) ||
		   !in_array((integer) $_POST['commentaire_statut'], array(CP_COMMENTAIRE_APPROUVE, CP_COMMENTAIRE_ATTENTE, CP_COMMENTAIRE_SPAM))) {
			throw new cpErreur(__('Donnée invalide'), 'commentaire_statut', 103);
		}
		$statut = (integer) $_POST['commentaire_statut'];
		
		$commentaires = self::getCommentaires();
		
		while($commentaires->fetch()) {
			$commentaires->modifierStatut($statut);
		}

	}
	
	public static function supprimer()
	{
		
		global $core;
		
		# Permission nécessaire: commentaires
		$core->auth->verifierPermission('commentaires', true);
		
		$commentaires = self::getCommentaires();

		while($commentaires->fetch()) {
			$commentaires->supprimer();
		}
		
	}
	
	public static function editer()
	{
		
		global $core;
		
		# Permission nécessaire: commentaires
		$core->auth->verifierPermission('commentaires', true);
		
		$commentaires = self::getCommentaires();
		
		if($commentaires->count() != 1) {
			throw new cpErreur(__('Donnée invalide'), 'commentaire_id', 301);
		}
		
		if(!($commentaire_date = strtotime($_POST['commentaire_date']))) {
			throw new cpErreur(__('Date invalide'), 'commentaire_date', 104);
		}
		
		$cur = $core->con->openCursor($core->prefix.'commentaires');
		$cur->commentaire_auteur = $_POST['commentaire_auteur'];
		$cur->commentaire_email = $_POST['commentaire_email'];
		$cur->commentaire_contenu = $_POST['commentaire_contenu'];
		$cur->commentaire_statut = (integer) $_POST['commentaire_statut'];
		$cur->commentaire_ip = $_POST['commentaire_ip'];
		$cur->commentaire_date = dt::str('%Y-%m-%d %H:%M:%S', $commentaire_date);
		
		if($core->site->getPropriete('commentaire_titre') == '1') {
			$cur->commentaire_titre = $_POST['commentaire_titre'];
		}
		
		$commentaires->enregistrer($cur);
		
		return array(
			'erreur' => 0,
			'commentaire' => array(
				'commentaire_id' => (integer) $commentaires->commentaire_id,
				'commentaire_statut' => (integer) $commentaires->commentaire_statut,
				'commentaire_auteur' => $commentaires->commentaire_auteur,
				'commentaire_email' => $commentaires->commentaire_email,
				'commentaire_titre' => $commentaires->commentaire_titre,
				'commentaire_contenu' => $commentaires->commentaire_contenu,
				'commentaire_ip' => $commentaires->commentaire_ip,
				'commentaire_date' => dt::dt2str(__('%d/%m/%Y %H:%M'), $commentaires->commentaire_date),
				'commentaire_belle_date' => cpDt::belleDate(array('le'=>true), strtotime($commentaires->commentaire_date))
			)
		);
	
	}
	
	public static function setStatutAntispam()
	{

		global $core;
		
		# Permission nécessaire: commentaires
		$core->auth->verifierPermission('commentaires', true);
				
		if(	!is_array($_POST['filtresAntispam']) || empty($_POST['filtresAntispam'])) {
			throw new cpErreur(__('Aucune sélection'), 302);
		}
		
		if(!in_array($_POST['antispam_statut'], array('0', '1') )) {
			throw new cpErreur(__('Donnée invalide'), 'antispam_statut', 103);
		}
		
		foreach($_POST['filtresAntispam'] as $v) {
			if(array_key_exists($v, $core->filtresAntispam)) {
				$core->site->setStatutAntispam($v, (integer) $_POST['antispam_statut']);
			}
		}
		
	}
	
}

?>